<?php
/**
 *
+------------------------------------+
| BitLF [ FAST DEVELOP KIT ]         |
+------------------------------------+
| 2010-2016 (c)                      |
+------------------------------------+
| Author: amamatthew                 |
+------------------------------------+
 * 日    期：2017-08-06
 * 版    本：1.0.0
 * 功能说明：数组工具类。
 **/
namespace app\ux;

class UtilArr
{
    /**
     * 二维数组根据字段进行排序
     * @param $array
     * @param $field
     * @param string $sort 排序顺序标志 SORT_DESC 降序；SORT_ASC 升序
     * @return mixed
     */
    public static function arraySequence($array, $field, $sort = 'SORT_DESC')
    {
        $arrSort = array();
        foreach ($array as $uniqid => $row) {
            foreach ($row as $key => $value) {
                $arrSort[$key][$uniqid] = $value;
            }
        }
        array_multisort($arrSort[$field], constant($sort), $array);
        return $array;
    }
    /**
     * 对象转数组
     * @param $obj 对象
     *
     * @return array 数组
     */
    public static function objToArray($obj)
    {
        $json  = json_encode($obj);
        $array = json_decode($json, true);
        return $array;
    }
    /**
     * 数组整理:删除 array 中所有等值为 FALSE 的条目，重排索引
     * @param $arr 数组
     *
     * @return array 数组
     */
    public static function noEmpty($arr)
    {
        return array_values(array_filter($arr));
    }
    /**
     * 数组整理:删除 array 中某下标元素并且重建索引
     * @param $arr 数组
     * @param $offset 位置偏移
     * @return array 返回数组被删除部分
     */
    public static function arrayRemove(&$arr, $offset)
    {
        return array_splice($arr, $offset, 1);
    }
    /**
     * 数组合并去重
     * @DateTime 2018-02-08
     * @param    [type] $arr1 [description]
     * @param    [type] $arr2 [description]
     * @return   [type]
     */
    public static function arrayMergeWithDistinct($arr1, $arr2)
    {
        $arr = array_keys(array_flip($arr1) + array_flip($arr2));
        return ($arr);
    }
}
